home *** CD-ROM | disk | FTP | other *** search
-
- Forthmacs Version 1.1
-
- This is Forthmacs Version 1.1. Version 1.1 fixes a number of
- (mostly-minor) bugs that were in Version 1.0 and adds some new
- features.
-
- New Features
-
- Extended Error Messages
- The new command WHY is used after a system error message; it
- prints more information about the error. For instance:
-
- ERA ASDFJL \ Try to remove non-existent file
- Can't remove file \ Forthmacs prints this
- WHY \ Ask for more information
- File not found \ Forthmacs tells why
-
- Some of the extended error messages aren't too useful; others
- are. The messages are based on the error code that is returned
- by a failing TOS system call.
-
- Autoloaded startup file
- If there is a file called AUTO.FTH on the disk when Forthmacs
- is started, Forthmacs will load that file. The sample version
- of AUTO.FTH on the working disk displays the message:
-
- Type the word help in lower case for more information
-
- Loading from EMACS buffers
- If you have been editing a file with EMACS, you can now load
- that file fast without accessing the disk. The new command
-
- ELOAD filename
-
- will first look to see if EMACS has a copy of that file in its
- memory. If so, the file will be loaded from there without
- accessing the disk. If EMACS does not have a copy of the file
- in memory, the file will be loaded from disk as with FLOAD.
-
- You can also load just part of a file from an EMACS buffer.
- The new command
-
- +LOAD
-
- loads the file contained in the current EMACS window, starting
- at the cursor position and continuing to the end of the file.
-
- This is very useful when debugging a program. For instance, after
- you have fixed a bug in a program, put the EMACS cursor at the
- spot where you want the loading to commence, get out of EMACS,
- use FORGET name to undo part of the previous load, and use
- +LOAD to reload the rest of the file.
-
- "ELOAD , EOPEN , and +EOPEN are new words which are used to
- implement ELOAD and +LOAD ; they may be useful in other contexts
- as well. Use the WHATIS command, or read the addendum to the
- reference manual, for more information.
-
- .DRIVE
- The new command
- .DRIVE
- displays the name of the current drive.
-
- Screen resolution.
- You can set the screen resolution from Forth with
- LOW-RES or MEDIUM-RES
- There is no HIGH-RES because it would be useless; if you have
- a monochrome monitor, you get high resolution no matter what,
- and if you have a color monitor you can only get low or medium
- resolution.
-
- If you have a color monitor, Forthmacs now automatically sets the
- screen resolution to medium when it starts, to ensure that 80
- columns are available.
-
- The screen resolution may be determined with:
- GETREZ ( -- resolution )
- resolution is 0 for low res, 1 for medium, and 2 for high
- (monochrome). I would have preferred to spell this GETRES ,
- but Atari spelled it with a z, so I went along with them.
-
- Different size file buffers
- The size of the buffers used by the Forthmacs file system interface
- may be increased for faster disk access. The new command:
- FSETBUFFER ( addr len fd -- )
- causes that file to use the user-supplied buffer. 8192 bytes seems
- to be a good size. The file transfer program in XMODEM.FTH now uses
- this feature.
-
- Mouse position
- The LineA graphics interface in LINEA.FTH now contains some
- words for finding the position of the mouse. See LINEA.FTH
- for more information.
-
- Editing with the mouse
- The file MOUSEKEY.FTH, when loaded, causes the mouse to simulate
- the effect of the arrow keys, so mouse movements may be used to
- position the editing cursor, both in Forth and in EMACS. Try
- this out; I find it amusing, but I don't particularly like it.
-
- Aborting printouts
- The PRINT-FILE command (contained in PRINTER.FTH) now allows
- you to stop the printout by typing any character at the keyboard.
-
- Near Letter Quality printing
- If you printer supports a Near Letter Quality mode using the
- standard IBM control sequence, you can turn that mode on
- and off with NLQ-ON and NLQ-OFF . The words are in the file
- PRINTER.FTH
-
- LIST command
- The Forth 83 standard word LIST , for displaying the contents
- of a Forth block, is now included in the block package which
- is loaded with BLOCK.FTH . I hope you aren't using blocks.
-
- SETEXC bios call
- The SETEXC bios call, for setting and retrieving the contents
- of an exception vector, is now provided in the normal system.
- SETEXC ( addr vec# -- oldaddr )
- Previously it was possible to perform this function with simple
- fetches and stores, but fetches and stores to exception vectors
- do not work in USER-STATE .
-
- BIOS.FTH defines BIOS and XBIOS interfaces.
- The new file BIOS.FTH provides predefined interfaces to all the
- Atari BIOS and XBIOS system functions. Previously these could
- be easily constructed with the System Call Compiler. Now they
- have already been done for you, and all you have to do is either
- load this file, or copy just the calls you need from this file
- into your program.
-
- DATE command
- The DATE command, in the file FILEDATE.FTH , displays the date
- associated with all the files matching a pattern. For example:
-
- DATE *.FTH
-
- shows the date on all the .FTH files in the current directory.
-
- FREE-MEM
- The companion function for ALLOC-MEM was missing from version
- 1.0. It has been added to the system.
- FREE-MEM ( addr #bytes -- )
-
- Bugs Fixed:
-
- ^C
- Typing ^C no longer causes Forth or EMACS to crash and exit.
- To implement this fix, Forthmacs has to take over the operating
- system "Terminate" vector and restore it before exiting.
-
- Random Bus Errors
- (QUIT did not clear the return stack, causing "random" bus errors
- after several aborts. The return stack was overflowing into the
- Text Input Buffer.
-
- XMODEM.FTH
- The program did not synchronize with the other computer as fast
- as it should have, because of a bug. Another bug caused the
- program to sometimes screw up received files containg embedded
- ^Z characters. Also, when overwriting an existing file, RECEIVE
- would sometimes leave junk from the old file at the end of the
- new one.
-
- ART.FTH
- The random number generator in the Atari operating system is not
- random in the least-significant-bit. This caused the STRINGART
- program to miss some of the possible pictures that it can now
- generate. The random number stuff has been moved out to the file
- RANDOM.FTH . The stringart program has been recoded slightly
- to eliminate some redundancy.
-
- DEBUG.FTH
- This program would not load because of a search order problem.
- The search order is now set properly in the file.
-
- TUTORIAL.TXT
- There were a number of errors in the EMACS tutorial. Thanks to
- Greg Hill for pointing these out.
-
- EMACS
- 1) EMACS didn't always erase the message line after the next
- command was typed.
- 2) EMACS didn't remove the * on the mode line after a ^Z
- 3) Numeric repeat counts to ^O left the cursor in the wrong place
- 4) EMACS now complains if you type an invalid TOS file name.
- It used to silently truncate the name to an acceptable length.
-
- TASKING.FTH
- The stack comment for TASK: was wrong. There were a number of
- uses of the word ! in TASKING.FTH which should have been TOKEN! .
- These caused the multitasker to crash when it was compiled and
- then saved in an executable file with SAVE-REL .
-
- CRASH-RSTRACE
- CRASH-RSTRACE did not display the most-recently-executed word.
-
- .CALLS
- .CALLS used to hang the system if the word being considered
- was stored in a DEFER word in the User Area. .CALLS now ignores
- the User Area.
-
- SET-RELOCATION-BIT
- Forthmacs would sometimes crash when the dictionary grew beyond
- 128K, because of relocation map overflow. SET-RELOCATION-BIT
- now checks for overflow. To save images larger than 128K, you
- first have to increase the size of the relocation map with:
- <new-size> IS MAX-IMAGE
- "" FORTH.TOS SPLICE-RELOCATION "" BIGFORTH.TOS SAVE-REL
- Then use BIGFORTH.TOS
-
- ;
- ; now checks to make sure the system is in compile state.
-
- ALLOC-MEM
- ALLOC-MEM now aligns to a word boundary; previously, calling
- ALLOC-MEM with an odd byte count would leave the allocation
- pointer misaligned, so the next allocation could cause an
- Address Error.
-
- STACK:
- STACK: needed TOKEN, instead of , so user stacks couldn't be
- saved to an executable file.
-
- SEE
- SEE left an address on the stack when decompiling DOES> words
-
- 'WORD to PAD
- 'WORD was too close to PAD , sometimes causing lines of text
- accepted with WORD to overflow into the area used by number
- conversion.
-
- (QUIT
- A guard band was added between 'TIB and SP0 , reducing the
- chance of stack underflows causing problems.
-
- (CR (LF BEEP BACKSPACES
- These words used the word EMIT when they should have used
- (EMIT . This sometimes caused incorrect updating of #OUT .
-
- COMPARE.FTH
- The file comparison program had the "File1" and "File2" labels
- backwards. File1 is now the first argument, and File2 is now
- the second.
-
- DIR
- The format of the listing produced by DIR (or LS or FILES)
- sometimes changed after certain other operations. Now it
- is always the same.
-
- Assembler
- The assembler did not complain when the immediate operand to
- a shift instruction was outside the allowable range of 1-8.
- Now it does.
-
- Disassembler
- The disassembler incorrectly disassembled the ILLEGAL and
- TAS instructions. It also incorrectly dissassembled:
- 8 SP ADDQ and 8 # D0 LSL
- as 0 SP ADDQ and 0 D0 LSL
-
- WHERE
- WHERE , which identifies the location of a compile error,
- did not separate its message from the previous message
- with a space. Now it does.
-
- Changes:
-
- Delete key
- The Delete key was changed to delete the next character, not
- the previous one, for compatibility with the GEM dialog box
- behavior. Also ESC-Delete now erases the next word, not the
- previous.
-
- FLUSH FILE! FILE@
- The words FLUSH FILE! and FILE@ were renamed to FFLUSH FILEC!
- and FILEC@ to conform to the file system standard proposed in
- the 1984 Rochester Conference Proceedings.
-
- >DMY DMY> >HMS HMS>
- These words have been moved from the FORTH vocabulary to the
- SYSTEM vocabulary.
-
- SYS-KEY SYS-KEY? SYS-EMIT
- These words now use the direct BIOS calls instead of the BDOS
- calls. This is reputed to avoid some subtle bugs in the BDOS
- which I have never encountered. It is also a bit faster.
-
- LINEA.FTH
- The fill patterns that used to be defined in LINEA.FTH have
- now been moved to a separate file PATTERNS.FTH . The fill
- patterns took a long time to compile, and are not used very
- much. By separating these files, programs which use the Line-A
- graphics will compile faster.
-